package com.china08.yxyapi.repository.mg.homework;

import java.util.List;

import org.springframework.data.mongodb.repository.MongoRepository;

import com.china08.yxyapi.entity.mg.homework.HomeworkKnowReport;

/**
 * 作业:知识点:学生 (每个一个学生的一个知识点 存储一条记录)
 * 
 * @author Richard Wang
 *
 */

public interface HomeworkKnowReportRepository extends MongoRepository<HomeworkKnowReport, String> {

    /**
     * 获取任务班级知识点报表
     * 
     * @param taskId
     * @param classId
     * @return
     */
    List<HomeworkKnowReport> findByTaskIdAndClassId(String taskId, String classId);

    /**
     * 通过学生id和任务id来获取记录
     * 
     * @param studentId
     * @param taskId
     * @return
     */
    List<HomeworkKnowReport> findByStudentIdAndTaskId(String studentId, String taskId);

    /**
     * 通过学生id获取当前记录
     * 
     * @param studentId
     * @return
     */
    HomeworkKnowReport findByStudentId(String studentId);

    /**
     * 通过班级id,任务id查询记录
     * 
     * @param classId
     * @param taskId
     * @return
     */
    List<HomeworkKnowReport> findByClassIdAndTaskId(String classId, String taskId);

    /**
     * 通过学生id，任务id，知识点id查询记录
     * 
     * @param studentId
     * @param taskId
     * @param knowIds
     * @return
     */
    HomeworkKnowReport findByStudentIdAndTaskIdAndKnowId(String studentId, String taskId, Integer knowIds);

    /**
     * 获取数量
     * 
     * @param taskId
     *            人物Id
     * @param classId
     *            班级Id
     * @param studentId
     *            学生Id
     * @return
     */
    Integer countByTaskIdAndClassIdAndStudentId(String taskId, String classId, String studentId);

    /**
     * 获取未同步的数据集合
     */
    List<HomeworkKnowReport> findBySynchIn(List<Object> synch);

    /**
     * 获取班级知识点报表
     * 
     * @param taskId
     * @param classId
     * @return
     */
    List<HomeworkKnowReport> findByKnowIdAndClassId(Integer integer, String classId);

}
